The management of applications on endpoint devices is a considerable challenge for Information Technology (IT) departments of large organizations today. In a typical enterprise, the IT department needs to perform management functions, such as installing, updating, and deleting applications on hundreds or thousands of endpoints efficiently and reliably. Various products have been developed to address the needs of IT departments in performing these functions. The focus of much of this technology has been to provide ways to perform application management operations that are efficient, reliable, and don't rely on use of traditional installers, which can require extensive administrator involvement and are prone to various other issues.
The increased presence of remote desktop technologies in the enterprise, such as those based on Virtual Desktop Infrastructure (VDI) and Desktop-as-a-Service (DAAS), has introduced additional complexities, while at the same time offering new possibilities and approaches for addressing the application management challenges of IT departments.
In a conventional VDI or DAAS environment, a user is provisioned a virtual desktop and is allowed to access his or her virtual desktop over a remote network connection, such as a WAN connection. The virtual desktops are typically hosted on servers that reside in a data center of the enterprise (or a third-party service provider), and each host server may execute multiple virtual desktops. Users can utilize a client device to remotely log into their individual virtual desktops and all of the application execution takes place on the remote host server, which is linked to the local client device over the network, using a remote display protocol such as remote desktop protocol (RDP), PC-over-IP (PCoIP) protocol, virtual network computing (VNC) protocol, or the like. Using such a remote desktop protocol, the user can interact with applications of the virtual desktop, which are running on the remote host server, such that the display (i.e., image data), sound, keyboard, mouse, and other input/output information is communicated between the local client device and the server. A common implementation of this approach is to host multiple desktop operating system instances on a server hardware platform running a hypervisor.
One approach for addressing the application management problem, suited particularly to the remote desktop space, utilizes application storage volumes, which are centrally stored and managed containers, such as virtual disks, containing one or more applications. With this technology, the application storage volumes are maintained in a central storage location that is accessible by virtual machines (VMs). For example, the application storage volumes might be located on the server where the VMs execute or on a separate storage array device.
Applications delivered using application storage volumes can become available on or be removed from the VM in a near-instant manner and can look and feel (to a user accessing the application on the VM via a client device) natively installed, while requiring minimal administrator involvement. Administrators can update or replace applications in real time and remove any assigned application, either immediately, while the user is still logged in, or at a next login or reboot. Furthermore, the administrator can perform these operations on any number of VMs simultaneously by simply indicating, via a management interface, which VMs or groups of VMs the operations should be performed on.
However, numerous difficulties still exist. For example, a failure that makes the application storage volume unavailable while an application is running can result in the application becoming unavailable and, perhaps more importantly, lead to data loss, such as loss of the application cache. Such failures can, for example, result from failure of a storage array or device where the application storage volume is hosted, inaccessibility of the storage array or device, corruption of the application storage volume, or any other failure making the application storage volume unavailable.
Particularly in industries where applications are expected to be up and running non-stop, such as the healthcare industry, the consequences of such a failure can be disastrous. To illustrate the impact, consider a situation where an application storage volume contains a clinical application that is being used to retrieve a large amount of data related to a group of patients, which is needed urgently. Further, assume that such a query takes about one hour to complete. In the middle of the operation, if the application storage volume becomes unavailable, all information that has been retrieved up until that point in time (which is cached in memory) would be lost. If the activity is resumed, the entire process would have to start from the beginning.
Similar disastrous situations may arise in other industries and other contexts where retrieval of big data is involved, or where data loss and application unavailability otherwise entails significant consequences. To compound these difficulties, because a single application storage volume may be attached to a group of VMs, the failure of the application storage volume may impact not just one desktop but all desktops in the group.